<?php
namespace heihei\helpers;
use Yii;
use yii\base\UserException;

/**
 * Xml操作类
 */
class XmlHelper {

  /**
   * 数组转xml字符
   * @param  string $xml xml字符串
   */
  public static function arrayToXml($data){
    if(!is_array($data) || count($data) <= 0){
      return false;
    }
    $xml = "<xml>";
    foreach ($data as $key=>$val){
      if (is_numeric($val)){
        $xml.="<".$key.">".$val."</".$key.">";
      }else{
        $xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
      }
    }
    $xml.="</xml>";
    return $xml; 
  }

  /**
   * 解析XML信息
   * @param string $xmltext 待提取的xml字符串
   * @return string 提取出的加密消息字符串
   */
  public static  function xmlToArray($xmlText)
  {
    try {
      $objectXml = simplexml_load_string($xmlText, 'SimpleXMLElement', LIBXML_NOCDATA);//将文件转换成 对象
      $xmlJson= json_encode($objectXml );//将对象转换个JSON
      $xmlArray=json_decode($xmlJson,true);//将json转换成数组
      return $xmlArray;
    } catch (UserException $e) {
      //print $e . "\n";
      return array(ErrorCode::$ParseXmlError, null, null);
    }
  }
}